﻿Imports EVOLTA.Promocion.Bl.Bc
Imports EVOLTA.Promocion.Bl.Be

Partial Class Seguimiento_seguimientpo
    Inherits System.Web.UI.Page

    Private separacionVenta As EseparacionVenta = Nothing
    Private separasionVentas As List(Of EseparacionVenta) = Nothing
    Private jsMensaje As String = Nothing

#Region "           Busqueda                                "
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.CacheControl = "no-cache"
        Response.AddHeader("Pragma", "no-cache")
        Response.Expires = -1
        '***********************************************************'
        If Not IsPostBack Then
            cargarTpoBusquedaSeguimiento()
            cargarBancos()
            cargarNotarias()
        End If
    End Sub
    Protected Sub btnConsultar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnConsultar.Click
        cargarSeguimiento()
    End Sub
    Private Sub cargarTpoBusquedaSeguimiento()
        Dim Eestado As New Ecommons
        selTpoFindSeguimiento.DataSource = Eestado.tpoBusquedaSeguimiento
        selTpoFindSeguimiento.DataTextField = "descripcion"
        selTpoFindSeguimiento.DataValueField = "codigo"
        selTpoFindSeguimiento.DataBind()
    End Sub
    Private Sub cargarBancos()
        selBanco.DataSource = RentFinanciera.SeleccionarTodo(Me.Master.descEmpresa, True)
        selBanco.DataTextField = "descEntidadFin"
        selBanco.DataValueField = "idEntidadFin"
        selBanco.DataBind()
    End Sub
    Private Sub cargarNotarias()
        SelNotaria.DataSource = Rnotaria.SeleccionarXEstado(Me.Master.descEmpresa, True)
        SelNotaria.DataTextField = "descNotaria"
        SelNotaria.DataValueField = "idNotaria"
        SelNotaria.DataBind()
    End Sub
    Private Sub cargarSeguimiento()
        Dim pSeparacionVenta As New EseparacionVenta
        With pSeparacionVenta
            .idProyecto = Me.Master.idProyecto
            .idEtapa = Me.Master.idEtapa
            .tpoGestion = selTpoFindSeguimiento.Value
            .fchInicio = txtfechaInicio.Text
            .fchFin = txtfechaFin.Text
            .idEntidadFin = selBanco.Value
            .nroKardex = txtKardex.Text
        End With
        separasionVentas = RseparacionVenta.SeleccionarSeguimiento(Me.Master.descEmpresa, False, txtCliente.Text.Trim, pSeparacionVenta)
        Session("Seguimiento") = separasionVentas
        If Not separasionVentas Is Nothing Then
            gvwLista.DataSource = separasionVentas
            gvwLista.DataBind()
        End If
    End Sub
    Protected Sub gvwLista_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) _
    Handles gvwLista.RowCommand
        Select Case e.CommandName
            Case "Edit"
        End Select
    End Sub
    Protected Sub gvwLista_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles gvwLista.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes("OnClick") = Page.ClientScript.GetPostBackClientHyperlink(Me.gvwLista, "Select$" + e.Row.RowIndex.ToString)
            e.Row.Style.Add("cursor", "hand")
        End If
    End Sub
    Protected Sub gvwLista_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles gvwLista.RowEditing
        Dim id As Int32 = CType(CType(gvwLista.Rows(e.NewEditIndex).FindControl("lnkUnidadVenta"), LinkButton).Text, Int32)
        hdfIdSeparacionVenta.Value = id
        separasionVentas = Session("Seguimiento")
        Dim Lseguimiento = From v In separasionVentas _
                            Where v.idSeparacionVenta.ToString = id _
                            Select v

        lblNombreCliente.Text = CType(gvwLista.Rows(e.NewEditIndex).FindControl("lnkNombre"), LinkButton).Text
        separacionVenta = New EseparacionVenta
        With separacionVenta
            .idProyecto = Me.Master.idProyecto
            .idEtapa = Me.Master.idEtapa
            .idSeparacionVenta = id
            .idEntidadFin = Lseguimiento.ElementAt(0).idEntidadFin
            hdfIdEntidadFin.Value = Lseguimiento.ElementAt(0).idEntidadFin
        End With
        cargarInstancias(RseguimientoCreditoHip.SeleccionarTodoXEntidadFin(Me.Master.descEmpresa, separacionVenta), Me.gvwInstancias)
        cargarEntrega(RseparacionVenta.SeleccionarSeguimientoEntrega(Me.Master.descEmpresa, separacionVenta))
        cargarPartida(RunidInmobiliarias.SeleccionarXNroPartida(Me.Master.descEmpresa, separacionVenta), Me.gvwPartida)

        selInstancias.DataSource = RSeguimientoFin.SeleccionarTodo(Me.Master.descEmpresa, True, Lseguimiento.ElementAt(0).idEntidadFin)
        selInstancias.DataTextField = "descSeguimiento"
        selInstancias.DataValueField = "idSeguimiento"
        selInstancias.DataBind()
    End Sub
    Private Sub cargarInstancias(ByVal pSeguimientoCreditoHip As List(Of EseguimientoCreditoHip), ByRef gvw As GridView)
        gvw.DataSource = pSeguimientoCreditoHip
        gvw.DataBind()
        upGvwInstancias.Update()
    End Sub
    Private Sub cargarEntrega(ByRef pSeparacionVenta As EseparacionVenta)
        Me.txtFchEntrega.Text = pSeparacionVenta.fchEntrega.Trim
        Me.txtObservacionEntrega.Value = pSeparacionVenta.obsEntrega
        Me.SelNotaria.Value = pSeparacionVenta.idNotaria
        Me.txtNroKardex.Value = pSeparacionVenta.nroKardex
        Me.txtNroTitulo.Value = pSeparacionVenta.nroTitulo
        Me.txtObservacionNotaria.Value = pSeparacionVenta.obsNotaria
    End Sub
    Private Sub cargarPartida(ByVal pUnidInmobiliarias As List(Of EunidInmobiliarias), ByRef gvw As GridView)
        gvw.DataSource = pUnidInmobiliarias
        gvw.DataBind()
    End Sub
#End Region

#Region "           Registro                                "
    Private Sub cargarInstancias()
        'selInstancias.DataSource = Rnotaria.SeleccionarXEstado(True)
        'selInstancias.DataTextField = "descNotaria"
        'selInstancias.DataValueField = "idNotaria"
        'selInstancias.DataBind()
    End Sub
    Protected Sub gvwInstancias_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) _
    Handles gvwInstancias.RowCommand
        Select Case e.CommandName
            Case "Edit"
                txtIdSeguimiento.text = CType(e.CommandArgument, String)
        End Select
    End Sub
    Protected Sub gvwInstancias_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles gvwInstancias.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes("OnClick") = Page.ClientScript.GetPostBackClientHyperlink(Me.gvwInstancias, "Select$" + e.Row.RowIndex.ToString)
            e.Row.Style.Add("cursor", "hand")
        End If
    End Sub
    Protected Sub gvwInstancias_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) _
    Handles gvwInstancias.RowEditing
        Dim fecha As String = CType(gvwInstancias.Rows(e.NewEditIndex).FindControl("lnkFchModificacion"), LinkButton).Text
        If fecha.Trim.Length > 0 Then
            txtFchModificacionInstancia.Text = fecha.Trim
        Else
            txtFchModificacionInstancia.Text = ""
        End If
        selInstancias.Value = CType(CType(gvwInstancias.Rows(e.NewEditIndex).FindControl("lnkSeguimiento"), LinkButton).CommandArgument, Int32)
        txtObsInstancias.Value = CType(gvwInstancias.Rows(e.NewEditIndex).FindControl("lnkObservación"), LinkButton).Text
        mpInstancias.Show()
    End Sub
    Protected Sub btnGrabarInstancias_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGrabarInstancias.Click
        Dim pSeguimientoCreditoHip As New EseguimientoCreditoHip
        With pSeguimientoCreditoHip
            .idProyecto = Me.Master.idProyecto
            .idEtapa = Me.Master.idEtapa
            .idSeparacionVenta = hdfIdSeparacionVenta.Value
            .estadoCreditoHip = selInstancias.Value.ToString
            .fchModificacion = txtFchModificacionInstancia.Text
            .Observacion = txtObsInstancias.Value.Trim.ToUpper
            .idUsuario = Me.Master.idUsuario
        End With
        Dim resultado As Boolean = RseguimientoCreditoHip.EditarInstanciasCreditoHip(Me.Master.descEmpresa, pSeguimientoCreditoHip)
        If resultado Then
            separacionVenta = New EseparacionVenta
            With separacionVenta
                .idProyecto = Me.Master.idProyecto
                .idEtapa = Me.Master.idEtapa
                .idSeparacionVenta = hdfIdSeparacionVenta.Value
                .idEntidadFin = hdfIdEntidadFin.Value
            End With
            cargarInstancias(RseguimientoCreditoHip.SeleccionarTodoXEntidadFin(Me.Master.descEmpresa, separacionVenta), Me.gvwInstancias)
            mpInstancias.Hide()
            jsMensaje = "<script>javascript:showDivRegistro();javascript:alert(' El registro fue guardado satisfactoriamente.');</script>)"
            Controls.Add(New LiteralControl(jsMensaje))
        Else
            jsMensaje = "<script>javascript:showDivRegistro();javascript:alert('Los datos no se pudieron registrar.');</script>)"
            Controls.Add(New LiteralControl(jsMensaje))
        End If        
    End Sub

    Protected Sub gvwPartida_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles gvwPartida.RowCommand
        Select Case e.CommandName
            Case "Edit"
                txtIdNroPartida.Text = CType(e.CommandArgument, String)
        End Select
    End Sub
    Protected Sub gvwPartida_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles gvwPartida.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes("OnClick") = Page.ClientScript.GetPostBackClientHyperlink(Me.gvwPartida, "Select$" + e.Row.RowIndex.ToString)
            e.Row.Style.Add("cursor", "hand")
        End If
    End Sub
    Protected Sub gvwPartida_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) _
    Handles gvwPartida.RowEditing
        lblInmuebleCompleto.Text = CType(gvwPartida.Rows(e.NewEditIndex).FindControl("lnkInmueble"), LinkButton).Text
        txtNroPartida.Value = CType(gvwPartida.Rows(e.NewEditIndex).FindControl("lnknroPartida"), LinkButton).Text
        mpNroPartida.Show()
    End Sub
    Protected Sub btnGuardarNroPartida_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGuardarNroPartida.Click
        If txtNroPartida.Value.Trim.Length Then
            Dim arr As String() = Split(txtIdNroPartida.Text, ",")
            separacionVenta = New EseparacionVenta
            With separacionVenta
                .idProyecto = Me.Master.idProyecto
                .idEtapa = Me.Master.idEtapa
                .idSeparacionVenta = CType(arr(3).ToString, Int32)
            End With
            Dim separacionVentaDetalle As EseparacionVentaDetalle
            separacionVentaDetalle = New EseparacionVentaDetalle
            With separacionVentaDetalle
                .idProyecto = Me.Master.idProyecto
                .idEtapa = Me.Master.idEtapa
                .idSeparacionVenta = CType(arr(2).ToString, Int32)
                .idSeparacionVentaDetalle = CType(arr(3).ToString, Int32)
                .nroPartida = txtNroPartida.Value
                .idUsuario = Me.Master.idUsuario
            End With
            Dim resultado As Boolean = RseparacionVentaDetalle.EditarNroPartida(Me.Master.descEmpresa, separacionVentaDetalle)
            If resultado Then
                cargarPartida(RunidInmobiliarias.SeleccionarXNroPartida(Me.Master.descEmpresa, separacionVenta), Me.gvwPartida)
                mpNroPartida.Hide()
                jsMensaje = "<script>javascript:showDivRegistro();javascript:alert(' El registro fue guardado satisfactoriamente.');</script>)"
                Controls.Add(New LiteralControl(jsMensaje))
            Else
                jsMensaje = "<script>javascript:showDivRegistro();javascript:alert('Los datos no se pudieron registrar.');</script>)"
                Controls.Add(New LiteralControl(jsMensaje))
            End If
        End If
    End Sub
    Protected Sub btnGrabar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGrabar.Click
        Dim pSeparacionVenta As New EseparacionVenta
        With pSeparacionVenta
            .idProyecto = Me.Master.idProyecto
            .idEtapa = Me.Master.idEtapa
            .idSeparacionVenta = hdfIdSeparacionVenta.Value
            .fchEntrega = txtFchEntrega.Text
            .obsEntrega = txtObservacionEntrega.Value
            .idNotaria = SelNotaria.Value
            .nroKardex = txtNroKardex.Value
            .nroTitulo = txtNroTitulo.Value
            .obsNotaria = txtObservacionNotaria.Value
            .idUsuario = Me.Master.idUsuario
        End With
        Dim resulado As Boolean = RseparacionVenta.EditarSeguimiento(Me.Master.descEmpresa, pSeparacionVenta)
        If resulado Then
            jsMensaje = "<script>javascript:showDivRegistro();javascript:alert('Se registro correctamente.');</script>)"
            Controls.Add(New LiteralControl(jsMensaje))
        Else
            jsMensaje = "<script>javascript:showDivRegistro();javascript:alert('Los datos no se pudieron registrar.');</script>)"
            Controls.Add(New LiteralControl(jsMensaje))
        End If
    End Sub
#End Region

End Class
